#define _CRT_SECURE_NO_WARNINGS 1


//#include<stdio.h>
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	
//	
//	char ch[301][301] = { 0 };
//	for (int i = 0; i < n; i++)
//	{
//		getchar();
//
//		for (int j = 0; j < n; j++)
//		{
//			scanf("%c", &ch[i][j]);
//		}
//	}
//	for (int i = 1; i <= n / 2; i++)
//	{
//		for (int x = 0; x < n; x++)
//		{
//			for (int y = 0; y < n; y++)
//			{
//				if (x >= i && x <= n - i + 1 && y >= i && y <= n - i + 1)
//					ch[y][n + 1 - x] = ch[x][y];
//			}
//		}
//	}
//	for (int i = 0; i < n; i++)
//	{
//		for (int j = 0; j < n; j++)
//		{
//			printf("%c", ch[i][j]);
//		}
//		printf("\n");
//	}
//	return 0;
//}
#include<stdio.h>
int Ipv4(char* s)
{
	int sum = 0;
	int n = 0;
	int num = 0;
	if (s[0] == '0') return 0;
	for (int i = 0; s[i]; i++)
	{
		if (s[i] >= '0' && s[i] <= '9')
		{
			n++;
			sum =sum*10+ s[i] - '0';
		}
		else if (s[i] == '.')
		{
			if (sum < 0 || sum>255 || (s[i + 1] == '0'&&s[i+2]!='\0')) return 0;
			n = 0;
			sum = 0;
			num++;
		}
		else return 0;
	}
	if (sum < 0 || sum>255 || num!=3) return 0;
	
	return 1;
}
int Ipv6(char* s)
{
	int n = 0;
	int num = 0;
	for (int i = 0; s[i]; i++)
	{
		if ((s[i] >= '0' && s[i] <= '9') || (s[i] >= 'a' && s[i] <= 'f') || (s[i] <= 'A' && s[i] >= 'F'))
		{
			n++;

		}
		else if (s[i] == ':')
		{
			if (n < 1 || n>4) return 0;
			n = 0;
			num++;
		}
		else return 0;
	}
	if (num != 7 || !(n >= 1 && n <= 4))return 0;
	return 1;
}
int main()
{
	char str[102] = { 0 };
	int n = 0;
	scanf("%d", &n);
	for (int i = 0; i < n; i++)
	{
		scanf("%s", str);
		if (Ipv4(str)) printf("IPv4\n");
		else if (Ipv6(str)) printf("IPv6\n");
		else printf("64vPI\n");
	}
	return 0;
}